package com.practice.chatroom;

import java.util.HashMap;
import java.util.Map;

import com.practice.chatroom.Deal.HttpStatusCode;

/** 响应的简易结构，作为处理流程中任意时刻的直接返回类型，交由最终的方法写响应 */
public class Resp {
    /** HTTP响应状态码 */
    private HttpStatusCode respType;
    /** 重定向时的地址，非重定向时应为空或与请求地址一致 */
    private String URL;
    /** 本次响应时要设置的cookie */
    private Map<String, String> cookie;

    /**
     * 初始化响应实例
     * 
     * @param respType 响应状态码
     * @param URL      重定向地址
     * @see Deal.HttpStatusCode
     */
    public Resp(HttpStatusCode respType, String URL) {
        this.respType = respType;
        this.URL = URL;
        cookie = new HashMap<>();
    }

    /**
     * 设置本次响应的某个cookie键值对
     * 
     * @param k cookie键
     * @param v cookie值
     */
    public void setCookie(String k, String v) {
        cookie.put(k, v);
    }

    /**
     * 取得响应实例的http状态码
     * 
     * @return http状态码
     */
    public HttpStatusCode getRespType() {
        return respType;
    }

    /**
     * 取得响应实例的url
     * 
     * @return 重定向地址或原请求地址
     */
    public String getURL() {
        return URL;
    }

    /**
     * 取得响应实例的cookie键值对
     * 
     * @return 要设置的cookie键值对
     */
    public Map<String, String> getCookie() {
        return cookie;
    }
}